// 1. 引入内置模块：http（创建HTTP服务）、fs（读取data.txt）
const http = require('http');
const fs = require('fs');

// 2. 创建HTTP服务
const server = http.createServer((req, res) => {
  // req：客户端请求对象（可读流）；res：服务端响应对象（可写流）
  // 设置响应头：告诉浏览器响应内容是HTML，编码为UTF-8
  res.writeHead(200, { 
    'Content-Type': 'text/html; charset=utf-8' 
  });

  try {
    // 3. 创建data.txt的可读流
    const dataStream = fs.createReadStream('./data.txt');
    
    // 4. 管道连接：可读流（data.txt）→ 可写流（res，响应给浏览器）
    // 好处：自动处理数据传输，避免手动监听data事件导致的“背压”问题
    dataStream.pipe(res);

    // 监听可读流错误（如文件不存在）
    dataStream.on('error', (err) => {
      res.writeHead(404, { 'Content-Type': 'text/plain; charset=utf-8' });
      res.end(`错误：${err.message}`); // 响应错误信息
    });
  } catch (err) {
    res.writeHead(500, { 'Content-Type': 'text/plain; charset=utf-8' });
    res.end(`服务端错误：${err.message}`);
  }
});

// 5. 启动服务，监听8081端口
server.listen(8081, () => {
  console.log('HTTP服务已启动！请在浏览器访问：http://localhost:8081');
});